<!DOCTYPE html>
<!-- saved from url=(0102)https://m.zhipin.com/mpa/html/get/column?contentId=beb9d74f2f1fd9afqxB83t4~&identity=0&userId=70673955 -->
<html lang="zh-CN" style="overflow: auto;"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    
    <meta content="telephone=no" name="format-detection">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, viewport-fit=cover">
    <title>‏</title>
    
    <link href="./__files/get.9d79fd6.css" rel="stylesheet">
    
<script src="./__files/web-report.min.js.下载" crossorigin=""></script>
                            <script>
                                performanceReport({
                                    action: "action_js_monitor",
                                    domain: "/wapi/zpApm/actionLog/fe/common.json",
                                    appKey: "7O9U1uHCgZ8r0DK7"
                                })
                            </script><style type="text/css">.hljs-ln{border-collapse:collapse}.hljs-ln td{padding:0}.hljs-ln-n:before{content:attr(data-line-number)}</style><link rel="stylesheet" type="text/css" href="./__files/63.41e364b.css"><script charset="utf-8" src="./__files/63.8726b38e.js.下载" crossorigin="anonymous"></script><link rel="stylesheet" type="text/css" href="./__files/4.99226b6.css"><script charset="utf-8" src="./__files/4.1090771d.js.下载" crossorigin="anonymous"></script><link rel="stylesheet" type="text/css" href="./__files/5.3c39402.css"><script charset="utf-8" src="./__files/5.8726a128.js.下载" crossorigin="anonymous"></script><link rel="stylesheet" type="text/css" href="./__files/64.488fa83.css"><script charset="utf-8" src="./__files/64.ad18743b.js.下载" crossorigin="anonymous"></script></head>
<body><svg aria-hidden="true" style="position: absolute; width: 0px; height: 0px; overflow: hidden;"><symbol id="icon_dianzan" viewBox="0 0 1024 1024"><path d="M391.168 105.528889C415.971556 24.632889 494.933333-12.913778 572.416 36.067556c90.794667 57.400889 110.592 161.223111 66.901333 303.047111l-1.479111 4.380444 193.820445 0.113778c110.364444 7.054222 162.816 73.841778 142.904889 179.768889l-2.332445 11.093333-16.099555 68.721778-24.860445 101.717333-36.408889 143.928889c-22.926222 79.473778-97.848889 117.304889-212.423111 117.304889H256a42.951111 42.951111 0 0 1-6.940444-0.568889l-143.473778-0.113778a78.222222 78.222222 0 0 1-77.880889-70.712889l-0.341333-7.509333V437.475556c0-40.675556 31.004444-74.069333 70.712888-77.880889l7.509334-0.341334h155.477333l14.222222-1.706666 11.036445-1.820445c3.128889-0.625778 5.575111-1.194667 7.395555-1.820444 31.857778-10.069333 51.2-38.912 65.934223-97.052445l1.877333-7.566222 4.551111-18.659555 3.413333-16.384 10.695111-61.724445 2.844445-14.961778c2.275556-11.093333 4.835556-21.333333 8.135111-32.028444z m135.623111 2.673778c-26.453333-16.725333-44.714667-8.078222-54.044444 22.357333a260.664889 260.664889 0 0 0-7.395556 30.321778l-8.362667 49.493333-4.152888 21.731556c-2.958222 14.506667-6.371556 29.354667-10.467556 45.624889-21.162667 83.854222-56.490667 136.590222-122.993778 157.582222a143.530667 143.530667 0 0 1-13.084444 3.413333l-7.623111 1.422222v440.604445h383.772444c76.231111 0 115.598222-17.635556 128.113778-48.810667l1.991111-5.632 8.305778-32.483555 23.381333-92.501334 20.878222-84.764444 12.515556-52.337778 11.377778-48.867556c14.165333-61.383111-1.422222-82.659556-60.074667-86.528h-251.790222a42.666667 42.666667 0 0 1-39.537778-58.652444c56.888889-140.686222 49.664-223.800889-10.808889-261.973333zM112.64 444.529778v435.541333h100.693333V444.529778H112.64z"></path></symbol><symbol id="icon_youjiantou" viewBox="0 0 1024 1024"><path d="M285.932308 918.764308a39.384615 39.384615 0 0 0 58.28923 52.932923l393.846154-433.230769a39.384615 39.384615 0 0 0 0-52.932924l-393.846154-433.230769a39.384615 39.384615 0 0 0-58.28923 52.932923L655.675077 512 285.932308 918.764308z"></path></symbol><symbol id="icon_icon_v" viewBox="0 0 1024 1024"><path d="M512 1016.123077A504.123077 504.123077 0 1 1 512 7.876923a504.123077 504.123077 0 0 1 0 1008.246154z m0-63.015385A441.107692 441.107692 0 1 0 512 70.892308a441.107692 441.107692 0 0 0 0 882.215384z" fill="#FFFFFF"></path><path d="M512 953.107692A441.107692 441.107692 0 1 0 512 70.892308a441.107692 441.107692 0 0 0 0 882.215384z" fill="#37C2BC"></path><path d="M477.499077 642.520615l162.500923-345.245538H748.307692L531.692308 757.602462H369.191385V297.275077h108.307692v345.245538z" fill="#FFFFFF"></path></symbol><symbol id="icon_guanbi" viewBox="0 0 1024 1024"><path d="M840.128 159.872a64 64 0 0 1 4.928 84.928l-4.928 5.632-237.632 237.568 237.632 237.568A64 64 0 0 1 755.2 821.12l-5.632-4.928L512 578.496l-237.568 237.632a64 64 0 0 1-95.488-84.928l4.928-5.632 237.568-237.568-237.568-237.568A64 64 0 0 1 268.8 154.88l5.632 4.928L512 397.44l237.568-237.568a64 64 0 0 1 90.56 0z"></path></symbol><symbol id="icon_arrows_below" viewBox="0 0 1024 1024"><path d="M120.100571 464.457143a36.571429 36.571429 0 0 1 52.809143-50.688l339.382857 354.011428 339.236572-354.011428a36.571429 36.571429 0 1 1 52.809143 50.614857l-339.309715 354.011429-2.194285 2.194285a73.142857 73.142857 0 0 1-103.424-2.194285l-339.309715-354.011429z"></path></symbol><symbol id="icon_icon_comment" viewBox="0 0 1024 1024"><path d="M619.789474 752.909474a37.726316 37.726316 0 0 1 23.821473-8.515369H813.810526a91.621053 91.621053 0 0 0 91.621053-91.621052V264.084211a91.621053 91.621053 0 0 0-91.621053-91.621053H210.189474a91.621053 91.621053 0 0 0-91.621053 91.621053v388.688842a91.621053 91.621053 0 0 0 91.621053 91.621052h170.199579a37.726316 37.726316 0 0 1 23.821473 8.461474l107.789474 87.740632 107.789474-87.740632z m-409.6 66.937263a167.073684 167.073684 0 0 1-167.073685-167.073684V264.084211a167.073684 167.073684 0 0 1 167.073685-167.073685h603.621052a167.073684 167.073684 0 0 1 167.073685 167.073685v388.688842a167.073684 167.073684 0 0 1-167.073685 167.073684h-156.779789l-121.263158 98.627368a37.726316 37.726316 0 0 1-47.589053 0l-121.209263-98.627368H210.189474z"></path></symbol><symbol id="icon_get1x" viewBox="0 0 1024 1024"><path d="M259.640889 52.167111c48.981333-50.631111 116.394667-27.534222 203.662222 49.436445l20.48 18.716444 10.467556 10.012444a42.666667 42.666667 0 1 1-59.392 61.269334l-9.386667-8.931556-17.521778-16.099555-8.192-7.168-15.132444-12.686223a448.113778 448.113778 0 0 0-13.653334-10.524444l-11.946666-8.533333-10.410667-6.712889a145.806222 145.806222 0 0 0-8.817778-4.892445l-7.168-3.242666-5.518222-1.763556c-3.185778-0.682667-5.233778-0.512-6.200889 0.512-7.395556 7.68-9.671111 30.549333-4.892444 67.128889l2.958222 19.456c1.763556 10.24 3.982222 21.390222 6.712889 33.393778l6.144 25.031111 7.395555 27.136c2.730667 9.443556 5.688889 19.228444 8.817778 29.354667a42.666667 42.666667 0 0 1-81.351111 25.543111c-46.193778-147.000889-52.622222-239.331556-7.054222-286.435556z"></path><path d="M128.056889 653.653333c1.422222-56.035556 27.761778-126.577778 68.949333-200.248889l15.132445-26.055111c13.084444-21.788444 27.363556-43.747556 42.609777-65.536l18.659556-26.112c15.928889-21.617778 32.711111-43.008 50.062222-63.829333l21.048889-24.689778c134.826667-154.567111 296.96-270.222222 374.613333-218.453333 65.194667 43.463111 58.026667 100.522667-13.937777 202.581333l-15.815111 21.788445-17.635556 23.153777-19.456 24.462223-149.048889 183.466666-25.144889 31.288889a42.666667 42.666667 0 0 1-66.56-53.475555L541.582222 301.226667l42.666667-51.996445 16.952889-21.105778 14.848-19.228444 13.084444-17.408 11.150222-15.587556 9.443556-13.937777 7.850667-12.344889 6.314666-10.808889 4.835556-9.329778c8.248889-17.294222 8.248889-26.282667 3.128889-29.639111-9.728-6.542222-37.831111 5.006222-76.003556 30.947556l-16.952889 11.946666-8.874666 6.656-18.488889 14.563556-9.671111 7.850666-19.683556 16.896-20.48 18.488889-20.878222 19.911111-21.276445 21.219556-21.447111 22.641778-10.808889 11.776c-123.107556 136.476444-211.740444 288.483556-213.902222 373.077333-3.811556 151.722667 321.422222 305.834667 498.915556 268.913778 68.835556-14.336 132.778667-130.616889 146.944-258.332445l1.308444-12.8 1.820445-22.983111c3.015111-49.948444-2.673778-73.784889-15.36-80.952889-1.934222-1.137778-5.575111 0.284444-10.808889 4.551112l-5.688889 5.347555a121.002667 121.002667 0 0 0-3.242667 3.413333l-7.168 8.533334c-3.811556 4.835556-7.964444 10.467556-12.515555 17.009778l-9.329778 14.336-10.24 16.839111-10.922667 19.456a871.537778 871.537778 0 0 0-5.745778 10.808889l-12.060444 23.665777A42.666667 42.666667 0 0 1 682.666667 635.847111c68.380444-138.808889 133.404444-201.728 206.279111-160.540444 58.026667 32.824889 67.128889 91.761778 55.068444 200.419555-17.749333 160.312889-99.328 308.565333-214.357333 332.458667-224.028444 46.648889-607.175111-134.997333-601.6-354.588445z"></path><path d="M744.846222 383.203556c62.008889 0 106.211556 36.067556 125.952 99.555555a42.666667 42.666667 0 0 1-81.464889 25.315556c-9.102222-29.240889-21.674667-39.537778-44.487111-39.537778-22.016 0-61.781333 38.115556-109.966222 119.580444a42.666667 42.666667 0 0 1-73.443556-43.463111c62.577778-105.813333 120.604444-161.450667 183.409778-161.450666z"></path><path d="M596.878222 283.192889c116.622222-3.584 179.939556 51.086222 159.004445 151.381333a42.666667 42.666667 0 1 1-83.512889-17.408c8.078222-38.684444-5.916444-50.744889-72.931556-48.696889a42.666667 42.666667 0 1 1-2.56-85.333333z"></path></symbol><symbol id="icon_gengduo1" viewBox="0 0 1024 1024"><path d="M170.666667 452.881067a68.266667 68.266667 0 1 1 68.266666 118.237866 68.266667 68.266667 0 0 1-68.266666-118.237866z m307.2 0a68.266667 68.266667 0 1 1 68.266666 118.237866 68.266667 68.266667 0 0 1-68.266666-118.237866zM819.2 443.733333a68.266667 68.266667 0 1 1 0 136.533334 68.266667 68.266667 0 0 1 0-136.533334z"></path></symbol><symbol id="icon_icon_increase" viewBox="0 0 1024 1024"><path d="M566.857143 475.428571h384a54.857143 54.857143 0 0 1 0 109.714286H566.857143v384a54.857143 54.857143 0 0 1-109.714286 0V585.142857H73.142857a54.857143 54.857143 0 0 1 0-109.714286H457.142857V91.428571a54.857143 54.857143 0 0 1 109.714286 0V475.428571z"></path></symbol><symbol id="icon_zuojiantou" viewBox="0 0 1024 1024"><path d="M738.067692 105.235692a39.384615 39.384615 0 0 0-58.28923-52.932923l-393.846154 433.23076901a39.384615 39.384615 0 0 0 0 52.93292398l393.846154 433.23076901a39.384615 39.384615 0 0 0 58.28923-52.932923L368.32492301 512 738.067692 105.235692z"></path></symbol><symbol id="icon_delete_circle" viewBox="0 0 1024 1024"><path d="M512 25.6a486.4 486.4 0 1 0 0 972.8 486.4 486.4 0 0 0 0-972.8z m0 51.2a435.2 435.2 0 1 1 0 870.4 435.2 435.2 0 0 1 0-870.4z"></path><path d="M674.9184 674.9184a25.6 25.6 0 0 1-32.6656 2.9696l-3.584-2.9696-289.5872-289.6384a25.6 25.6 0 0 1 32.6656-39.168l3.584 2.9696 289.5872 289.6384a25.6 25.6 0 0 1 0 36.1984z"></path><path d="M385.28 674.9184a25.6 25.6 0 0 1-39.168-32.6656l2.9696-3.584 289.6384-289.5872a25.6 25.6 0 0 1 39.168 32.6656l-2.9696 3.584-289.6384 289.5872z"></path></symbol><symbol id="icon_shuoming" viewBox="0 0 1092 1024"><path d="M546.133333 17.066667a494.933333 494.933333 0 1 0 0 989.866666A494.933333 494.933333 0 0 0 546.133333 17.066667z m0 34.133333a460.8 460.8 0 1 1 0 921.6A460.8 460.8 0 0 1 546.133333 51.2z"></path><path d="M585.728 599.381333V267.605333h-81.92v331.776h81.92z m-40.96 155.648c15.018667 0 27.8528-5.256533 38.570667-15.701333a50.722133 50.722133 0 0 0 16.042666-37.546667 48.059733 48.059733 0 0 0-16.384-36.864 54.818133 54.818133 0 0 0-38.229333-15.018666 53.179733 53.179733 0 0 0-38.570667 15.701333 50.722133 50.722133 0 0 0 0.341334 74.410667 59.392 59.392 0 0 0 17.408 10.922666 53.930667 53.930667 0 0 0 20.821333 4.096z"></path></symbol><symbol id="icon_shuaxin" viewBox="0 0 1024 1024"><path d="M803.84 32.6656l40.448 174.9504a41.9328 41.9328 0 0 1-31.488 50.2784l-167.3728 38.6048a41.9328 41.9328 0 1 1-18.8416-81.6128l82.7392-19.1488-3.2256-2.048A374.528 374.528 0 0 0 512 139.9296c-208.2304 0-377.0368 169.0624-377.0368 377.6512S303.7696 895.2832 512 895.2832s377.0368-169.1136 377.0368-377.7024a41.9328 41.9328 0 1 1 83.7632 0c0 254.976-206.336 461.6192-460.8 461.6192s-460.8-206.6944-460.8-461.6192c0-254.976 206.336-461.6192 460.8-461.6192a458.24 458.24 0 0 1 224.6144 58.4704l-14.5408-62.8736a41.9328 41.9328 0 0 1 81.8176-18.8928z"></path></symbol><symbol id="icon_zhichi" viewBox="0 0 1024 1024"><path d="M511.0784 9.472C234.5984 9.472 10.496 233.5744 10.496 509.952c0 276.48 224.1536 500.5824 500.5824 500.5824 276.4288 0 500.5312-224.1536 500.5312-500.5824 0-276.4288-224.1024-500.5312-500.5312-500.5312z m287.0784 370.688l-323.7376 323.7376a45.4144 45.4144 0 0 1-55.04 7.0144 39.4752 39.4752 0 0 1-8.96-7.0144l-186.4704-186.4704a45.1584 45.1584 0 0 1 0-64 45.1584 45.1584 0 0 1 64 0l154.3168 154.3168 291.7376-291.7376a45.1584 45.1584 0 0 1 64 0c17.8688 17.7152 17.8688 46.4384 0.1536 64.1536z"></path></symbol><symbol id="icon_selected_off" viewBox="0 0 1024 1024"><path d="M512 967.111111A455.111111 455.111111 0 1 1 512 56.888889a455.111111 455.111111 0 0 1 0 910.222222z m0-56.888889A398.222222 398.222222 0 1 0 512 113.777778a398.222222 398.222222 0 0 0 0 796.444444z"></path></symbol><symbol id="icon_close" viewBox="0 0 1024 1024"><path d="M512 566.272l-280.064 280.064a38.4 38.4 0 0 1-54.272-54.272L457.728 512 177.664 231.936a38.4 38.4 0 0 1 54.272-54.272L512 457.728l280.064-280.064a38.4 38.4 0 0 1 54.272 54.272L566.272 512l280.064 280.064a38.4 38.4 0 0 1-54.272 54.272L512 566.272z"></path></symbol><symbol id="icon_yiwen" viewBox="0 0 1024 1024"><path d="M519.11111099 56.888889a455.111111 455.111111 0 1 1 0 910.222222A455.111111 455.111111 0 0 1 519.11111099 56.888889z m0 85.333333a369.777778 369.777778 0 1 0 0 739.555556 369.777778 369.777778 0 0 0 0-739.555556z m-3.299555 503.296c13.767111 0 25.656889 4.380444 35.043555 13.141334a46.193778 46.193778 0 0 1 13.767111 33.792 45.795556 45.795556 0 0 1-14.392889 34.417777 48.241778 48.241778 0 0 1-34.417777 13.141334 48.753778 48.753778 0 0 1-34.417778-13.767111 43.918222 43.918222 0 0 1-13.767111-33.792c0-13.767111 4.380444-25.031111 13.767111-33.792a48.241778 48.241778 0 0 1 34.417778-13.141334zM527.07555599 284.444444c40.675556 0 73.841778 10.638222 98.872888 33.166223 25.031111 21.902222 37.546667 51.939556 37.546667 90.112 0 31.288889-8.135111 56.945778-23.153778 76.970666-5.632 6.257778-23.779556 23.153778-53.816889 49.436445a96.995556 96.995556 0 0 0-25.031111 31.288889c-6.257778 12.515556-9.386667 25.656889-9.386666 40.675555v8.760889H480.14222199v-8.760889c0-23.779556 3.754667-44.430222 12.515556-61.326222 8.135111-16.896 32.540444-43.178667 73.216-79.473778l7.509333-8.760889c11.264-13.767111 16.896-28.785778 16.896-44.430222 0-20.650667-6.257778-36.920889-17.521778-48.810667-11.889778-11.889778-28.785778-17.521778-50.062222-17.521777-27.534222 0-46.933333 8.135111-58.823111 25.656889-10.638222 14.392889-15.644444 35.043556-15.644444 61.326222H376.88888899c0-46.307556 13.141333-82.602667 40.675555-108.885334C444.47288899 297.585778 480.76799999 284.444444 527.07555599 284.444444z"></path></symbol><symbol id="icon_fangdajing1" viewBox="0 0 1025 1024"><path d="M834.114996 143.057958a488.511384 488.511384 0 0 1 33.249466 654.161928l141.352857 141.523368a49.447924 49.447924 0 1 1-69.909133 69.909134l-141.523368-141.523368a488.511384 488.511384 0 1 1 36.830178-724.071062z m-620.997717 69.909134a389.700791 389.700791 0 1 0 551.088583 551.088584 389.700791 389.700791 0 0 0-551.088583-551.088584z"></path></symbol><symbol id="icon_play" viewBox="0 0 1024 1024"><path d="M905.435429 607.305143l-692.662858 394.971428a109.714286 109.714286 0 0 1-163.986285-95.232V116.955429A109.714286 109.714286 0 0 1 212.845714 21.650286l692.589715 394.971428a109.714286 109.714286 0 0 1 0 190.683429z" fill="#333333"></path></symbol><symbol id="icon_stop" viewBox="0 0 1024 1024"><path d="M85.333333 0m128 0l0 0q128 0 128 128l0 768q0 128-128 128l0 0q-128 0-128-128l0-768q0-128 128-128Z"></path><path d="M810.666667 0A128 128 0 0 1 938.666667 128v768a128 128 0 0 1-256 0v-768A128 128 0 0 1 810.666667 0z"></path></symbol><symbol id="icon_slidebar" viewBox="0 0 1024 1024"><path d="M512 512m-512 0a512 512 0 1 0 1024 0 512 512 0 1 0-1024 0Z" fill="#333333"></path></symbol><symbol id="icon_wen" viewBox="0 0 1024 1024"><path d="M896 32a96 96 0 0 1 96 96v768a96 96 0 0 1-96 96H128a96 96 0 0 1-96-96V128a96 96 0 0 1 96-96z m0 64H128a32 32 0 0 0-32 32v768a32 32 0 0 0 32 32h768a32 32 0 0 0 32-32V128a32 32 0 0 0-32-32zM309.248 320.384v482.752h-67.2V320.384h67.2z m466.304-74.176v475.84c0 50.688-29.184 76.032-86.208 76.032h-62.72L608.896 736l67.84 1.92c20.864 0 31.68-11.392 31.68-33.6V310.208H471.424v-64h304.128zM631.68 405.248v257.92H383.36v-257.92h248.32z m-66.56 62.72h-115.2v131.2h115.328v-131.2zM357.376 208.832A702.72 702.72 0 0 1 433.408 321.6l-59.52 31.104a676.928 676.928 0 0 0-77.312-116.608z"></path></symbol><symbol id="icon_icon_topic" viewBox="0 0 1024 1024"><path d="M512 512m-512 0a512 512 0 1 0 1024 0 512 512 0 1 0-1024 0Z" fill="#37C2BC"></path><path d="M661.76 230.848a38.4 38.4 0 0 1 31.872 43.968l-16.896 107.008h69.504a33.28 33.28 0 1 1 0 66.56h-80l-21.76 137.088h42.88a33.28 33.28 0 1 1 0 66.56h-53.312l-17.216 109.184a38.4 38.4 0 0 1-75.84-12.032l15.36-97.152H439.68l-17.152 109.184a38.4 38.4 0 0 1-75.904-12.032l15.36-97.152H277.76a33.28 33.28 0 0 1 0-66.56h94.72l21.696-137.088H336.64a33.28 33.28 0 1 1 0-66.56h68.032l18.816-119.04a38.4 38.4 0 0 1 75.904 12.032l-16.96 107.008h116.48l18.88-119.04a38.4 38.4 0 0 1 43.904-31.936z m-94.912 354.56l21.632-137.024H471.936l-21.76 137.088h116.672z" fill="#FFFFFF"></path></symbol><symbol id="icon_icon-test1" viewBox="0 0 1024 1024"><path d="M336.817231 980.519385L848.502154 31.507692H701.046154L189.361231 980.519385h147.456zM244.814769 534.370462c39.463385 0 71.443692-4.804923 95.783385-14.493539 24.418462-9.688615 43.480615-24.576 57.344-44.740923 13.863385-20.164923 23.315692-45.371077 28.356923-75.618462a651.421538 651.421538 0 0 0 7.561846-105.865846c0-40.329846-2.520615-75.618462-7.561846-105.865846-5.041231-30.247385-14.493538-55.453538-28.356923-75.618461a122.328615 122.328615 0 0 0-57.344-44.740923C316.179692 57.737846 284.278154 52.932923 244.814769 52.932923c-38.596923 0-70.340923 4.804923-95.153231 14.493539a122.092308 122.092308 0 0 0-57.974153 44.740923c-13.863385 20.164923-23.315692 45.371077-28.356923 75.618461a651.421538 651.421538 0 0 0-7.561847 105.865846c0 40.329846 2.520615 75.618462 7.561847 105.865846 5.041231 30.247385 14.493538 55.453538 28.356923 75.618462s33.161846 35.052308 57.974153 44.740923c24.812308 9.688615 56.477538 14.493538 95.153231 14.493539z m0-95.783385c-25.206154 0-40.723692-12.366769-46.631384-37.179077-5.907692-24.812308-8.822154-62.385231-8.822154-112.797538 0-45.371077 2.914462-80.029538 8.822154-103.975385 5.907692-23.945846 21.425231-35.918769 46.631384-35.918769 25.206154 0 40.723692 11.972923 46.631385 35.918769 5.907692 23.945846 8.822154 58.604308 8.822154 103.975385 0 50.412308-2.914462 87.985231-8.822154 112.797538-5.907692 24.812308-21.425231 37.179077-46.631385 37.179077z m534.370462 520.507077c39.463385 0 71.443692-4.411077 95.783384-13.233231 24.418462-8.822154 43.480615-23.079385 57.344-42.850461 13.863385-19.692308 23.315692-44.504615 28.356923-74.358154s7.561846-65.378462 7.561847-106.496c0-40.329846-2.520615-75.618462-7.561847-105.865846-5.041231-30.247385-14.493538-55.453538-28.356923-75.618462a122.328615 122.328615 0 0 0-57.344-44.740923c-24.418462-9.688615-56.32-14.493538-95.783384-14.493539-38.596923 0-70.340923 4.804923-95.153231 14.493539a122.092308 122.092308 0 0 0-57.974154 44.740923c-13.863385 20.164923-23.315692 45.371077-28.356923 75.618462a651.421538 651.421538 0 0 0-7.561846 105.865846c0 41.196308 2.520615 76.642462 7.561846 106.496 5.041231 29.853538 14.493538 54.587077 28.356923 74.358154 13.863385 19.692308 33.161846 34.028308 57.974154 42.850461 24.812308 8.822154 56.477538 13.233231 95.153231 13.233231z m0-92.002462c-25.206154 0-40.723692-12.366769-46.631385-37.179077-5.907692-24.812308-8.822154-62.385231-8.822154-112.797538 0-45.371077 2.914462-80.029538 8.822154-103.975385 5.907692-23.945846 21.425231-35.918769 46.631385-35.918769 25.206154 0 40.723692 11.972923 46.631384 35.918769 5.907692 23.945846 8.822154 58.604308 8.822154 103.975385 0 50.412308-2.914462 87.985231-8.822154 112.797538-5.907692 24.812308-21.425231 37.179077-46.631384 37.179077z"></path></symbol><symbol id="icon_state" viewBox="0 0 1024 1024"><path d="M512 969.142857A457.142857 457.142857 0 1 1 512 54.857143a457.142857 457.142857 0 0 1 0 914.285714z m0-36.571428a420.571429 420.571429 0 1 0 0-841.142858 420.571429 420.571429 0 0 0 0 841.142858z m5.632-643.803429c42.057143 0 76.288 11.190857 101.302857 34.889143 24.429714 22.381714 36.864 53.321143 36.864 92.818286 0 29.622857-8.557714 55.296-24.283428 77.019428-6.582857 7.899429-25.088 25.014857-53.979429 50.688a132.169143 132.169143 0 0 0-30.354286 35.547429 94.281143 94.281143 0 0 0-12.434285 48.713143v15.140571h-53.394286v-15.140571c0-21.723429 3.949714-40.813714 12.507428-57.270858 8.630857-19.748571 30.939429-44.763429 66.56-76.361142 10.459429-10.532571 17.700571-18.432 22.308572-23.698286 12.580571-16.457143 19.090286-33.572571 19.090286-52.004572 0-26.331429-7.168-46.738286-21.650286-61.220571-15.798857-15.798857-37.595429-23.04-65.170286-23.04-32.329143 0-56.612571 10.532571-73.142857 32.256-13.750857 18.432-21.065143 43.446857-21.065143 75.702857h-52.662857c0-46.08 13.165714-82.944 38.912-110.592 26.916571-28.964571 63.780571-43.446857 110.592-43.446857zM508.342857 689.664c11.190857 0 20.48 3.291429 28.306286 11.190857a37.741714 37.741714 0 0 1 11.190857 27.648 38.180571 38.180571 0 0 1-11.190857 28.306286 41.545143 41.545143 0 0 1-28.306286 11.190857 38.180571 38.180571 0 0 1-28.306286-11.190857 38.253714 38.253714 0 0 1-11.849142-28.306286 35.84 35.84 0 0 1 11.849142-27.648 35.84 35.84 0 0 1 28.306286-11.190857z"></path></symbol></svg>
<div><!----> <div class="wrap-2sAzC"><div class="top-VJ3Zi"><div class="title title-2H5Vd">Redis 不是一直号称单线程效率也很高吗，为什么又采用多线程了？</div> <div class="wrap-3geyh person-FKdNn" style=""><div class="avatar-wrap-N4lCS"><img src="./__files/9d1f893469bc9180c0273a76f841327ed3af71c394c1baba5d47585c58eaf434cf8402f442544fb09a47ccb899e933cd.jpeg" class="avatar-1nibX"> <!----></div> <div class="con-3fN25"><div class="info-3WHAx"><div class="name-2u73m">Hollis</div> <img src="./__files/56775569ab661623a47995708b0e9c7f1885a2777b2bf0241f8edd02f7d9433a.png" class="levelIcon-74Gzt"></div> <div><span class="desc-3WqCI">后端领域作者</span> <span class="desc-3WqCI"> | </span> <span class="desc-3WqCI">共发布 11 篇文章</span></div></div> <button class="bt-2EgVi"><svg class="icon-1y_8J"><use xlink:href="#icon_icon_increase"></use></svg>
        关注
    </button> <div class="progress-2gVJe" style="width: 0%;"></div></div> <div class="person-wrap-_7zYH"><div class="wrap-3geyh person-FKdNn"><div class="avatar-wrap-N4lCS"><img src="./__files/9d1f893469bc9180c0273a76f841327ed3af71c394c1baba5d47585c58eaf434cf8402f442544fb09a47ccb899e933cd.jpeg" class="avatar-1nibX"> <!----></div> <div class="con-3fN25"><div class="info-3WHAx"><div class="name-2u73m">Hollis</div> <img src="./__files/56775569ab661623a47995708b0e9c7f1885a2777b2bf0241f8edd02f7d9433a.png" class="levelIcon-74Gzt"></div> <div><span class="desc-3WqCI">后端领域作者</span> <span class="desc-3WqCI"> | </span> <span class="desc-3WqCI">共发布 11 篇文章</span></div></div> <button class="bt-2EgVi"><svg class="icon-1y_8J"><use xlink:href="#icon_icon_increase"></use></svg>
        关注
    </button> <div class="progress-2gVJe" style="width: 0.912524%;"></div></div></div> <!----> <div class="ql-editor content-3yK7Q"><p><span style="color: rgb(136, 136, 136);">"【有了社区】PC版上线啦！</span><strong style="color: rgb(230, 0, 0);">电脑看文章</strong><span style="color: rgb(136, 136, 136);">体验更佳哦~戳</span><span style="color: rgb(230, 0, 0);"> </span><a href="https://youle.zhipin.com/" rel="noopener noreferrer" target="_blank" style="color: rgb(230, 0, 0);">https://youle.zhipin.com</a> "</p><p>Redis 是目前广为人知的一个内存数据库，在各个场景中都有着非常丰富的应用，前段时间 Redis 推出了 6.0 的版本，在新版本中采用了多线程模型。</p><p>因为我们公司使用的内存数据库是自研的，按理说我对 Redis 的关注其实并不算多，但是因为 Redis 用的比较广泛，所以我需要了解一下这样方便我进行面试。</p><p>总不能候选人用过 Redis，但是我非要问人家阿里的 Tair 是怎么回事吧。</p><p>所以，在 Redis 6.0 推出之后，我想去了解下为什么采用多线程，现在采用的多线程和以前版本有什么区别？为什么这么晚才使用多线程？</p><p><strong style="color: inherit;">Redis 不是已经采用了多路复用技术吗？不是号称很高的性能了吗？为啥还要采用多线程模型呢？</strong></p><p>本文就来分析下这些问题以及背后的思考。</p><h2><strong>Redis 为什么最开始被设计成单线程的？</strong></h2><p>Redis 作为一个成熟的分布式缓存框架，它由很多个模块组成，如网络请求模块、索引模块、存储模块、高可用集群支撑模块、数据操作模块等。</p><p>很多人说 Redis 是单线程的，就认为 Redis 中所有模块的操作都是单线程的，其实这是不对的。</p><p>我们所说的 Redis 单线程，指的是 "其网络 IO 和键值对读写是由一个线程完成的"。</p><p>也就是说，<strong style="color: inherit;">Redis 中只有网络请求模块和数据操作模块是单线程的。而其他的如持久化存储模块、集群支撑模块等是多线程的。</strong></p><p>所以说，Redis 中并不是没有多线程模型的，早在 Redis 4.0 的时候就已经针对部分命令做了多线程化。</p><p>那么，为什么网络操作模块和数据存储模块最初并没有使用多线程呢？</p><p>这个问题的答案比较简单！因为："没必要！"</p><p>为什么没必要呢？我们先来说一下，什么情况下要使用多线程？</p><p><br></p><h3 class="ql-align-justify"><strong>多线程适用场景</strong></h3><p>一个计算机程序在执行的过程中，主要需要进行两种操作分别是读写操作和计算操作。</p><p>其中读写操作主要是涉及到的就是 I/O 操作，其中包括网络 I/O 和磁盘 I/O。计算操作主要涉及到 CPU。</p><p><strong style="color: inherit;">而多线程的目的，就是通过并发的方式来提升 I/O 的利用率和 CPU 的利用率。</strong></p><p>那么，Redis 需不需要通过多线程的方式来提升提升 I/O 的利用率和 CPU 的利用率呢？</p><p>首先，我们可以肯定的说，Redis 不需要提升 CPU 利用率，因为&nbsp;<strong style="color: inherit;">Redis 的操作基本都是基于内存的，CPU 资源根本就不是 Redis 的性能瓶颈。</strong></p><p><strong style="color: inherit;">所以，通过多线程技术来提升 Redis 的 CPU 利用率这一点是完全没必要的。</strong></p><p>那么，使用多线程技术来提升 Redis 的 I/O 利用率呢？是不是有必要呢？</p><p>Redis 确实是一个 I/O 操作密集的框架，他的数据操作过程中，会有大量的网络 I/O 和磁盘 I/O 的发生。要想提升 Redis 的性能，是一定要提升 Redis 的 I/O 利用率的，这一点毋庸置疑。</p><p>但是，<strong style="color: inherit;">提升 I/O 利用率，并不是只有采用多线程技术这一条路可以走！</strong></p><p><br></p><h3 class="ql-align-justify"><strong>多线程的弊端</strong></h3><p>我们在很多文章中介绍过一些 Java 中的多线程技术；</p><p>如内存模型、锁、CAS 等，这些都是 Java 中提供的一些在多线程情况下保证线程安全的技术。</p><blockquote class="ql-align-justify"><span style="color: inherit;">线程安全：是编程中的术语，指某个函数、函数库在并发环境中被调用时，能够正确地处理多个线程之间的共享变量，使程序功能正确完成。</span></blockquote><p>和 Java 类似，所有支持多线程的编程语言或者框架，都不得不面对的一个问题，那就是如何解决多线程编程模式带来的共享资源的并发控制问题。</p><p><span style="color: inherit;">虽然，采用多线程可以帮助我们</span><strong style="color: inherit;">提升 CPU 和 I/O 的利用率</strong><span style="color: inherit;">，但是多线程带来的并发问题也</span><strong style="color: inherit;">给这些语言和框架带来了更多的复杂性</strong><span style="color: inherit;">。</span></p><p><span style="color: inherit;">而且，多线程模型中，</span><strong style="color: inherit;">多个线程的互相切换也会带来一定的性能开销。</strong></p><p>所以，在提升 I/O 利用率这个方面上，Redis 并没有采用多线程技术，而是选择了<strong style="color: inherit;">多路复用 I/O</strong>&nbsp;技术。</p><p><br></p><h3 class="ql-align-justify"><strong>小结</strong></h3><p>Redis 并没有在网络请求模块和数据操作模块中使用多线程模型，主要是基于以下四个原因：</p><ul><li class="ql-align-justify">1、Redis 操作基于内存，绝大多数操作的性能瓶颈不在 CPU</li><li class="ql-align-justify">2、使用单线程模型，可维护性更高，开发，调试和维护的成本更低</li><li class="ql-align-justify">3、单线程模型，避免了线程间切换带来的性能开销</li><li class="ql-align-justify">4、在单线程中使用多路复用 I/O 技术也能提升 Redis 的 I/O 利用率</li></ul><p>还是要记住：Redis 并不是完全单线程的，只是有关键的网络 IO 和键值对读写是由一个线程完成的。</p><h2><strong>Redis 的多路复用</strong></h2><p>多路复用这个词，相信很多人都不陌生。我之前的很多文章中也够提到过这个词。</p><p>其中在介绍 Linux IO 模型的时候我们提到过它、在介绍 HTTP/2 的原理的时候，我们也提到过他。</p><p>那么，Redis 的多路复用技术和我们之前介绍的又有什么区别呢？</p><p>这里先讲讲&nbsp;<strong style="color: inherit;">Linux 多路复用技术，就是多个进程的 IO 可以注册到同一个管道上，这个管道会统一和内核进行交互。</strong></p><p><strong style="color: inherit;">当管道中的某一个请求需要的数据准备好之后，进程再把对应的数据拷贝到用户空间中。</strong></p><img src="./__files/55f8215ae6f41fa0b4fa51109988fe22d3af71c394c1baba5d47585c58eaf434c2a47cf753b44e658eac6dbe502bb8a2.jpeg" width="300" height="200" title="" id="ql-image__1616640467051"><p class="ql-align-justify"><span style="color: inherit;">多看一遍上面这张图和上面那句话，后面可能还会用得到。</span></p><p>也就是说，通过一个线程来处理多个 IO 流。</p><p>IO 多路复用在 Linux 下包括了三种，select、poll、epoll，抽象来看，他们功能是类似的，但具体细节各有不同。</p><p>其实，Redis 的 IO 多路复用程序的所有功能都是通过包装操作系统的 IO 多路复用函数库来实现的。</p><p>每个 IO 多路复用函数库在 Redis 源码中都有对应的一个单独的文件。</p><img src="./__files/2ab0b07ad421e4867e2d012a16a97144d3af71c394c1baba5d47585c58eaf43438abf96b6ec54a1d8bc9dec4456f7f5c.jpeg" width="300" height="200" title="" id="ql-image__1616640485664"><p class="ql-align-justify">在 Redis 中，每当一个套接字准备好执行连接应答、写入、读取、关闭等操作时，就会产生一个文件事件。</p><p class="ql-align-justify">因为一个服务器通常会连接多个套接字，所以多个文件事件有可能会并发地出现。</p><img src="./__files/f548390a7973b1fcbbc18f2d55b56d33d3af71c394c1baba5d47585c58eaf4341ddde3344d87497da0da16826403b209.jpeg" width="300" height="200" title="" id="ql-image__1616640538959"><p class="ql-align-justify">一旦有请求到达，就会交给 Redis 线程处理，这就实现了一个 Redis 线程处理多个 IO 流的效果。</p><p>所以，Redis 选择使用多路复用 IO 技术来提升 I/O 利用率。</p><p>而之所以 Redis 能够有这么高的性能，不仅仅和采用多路复用技术和单线程有关，此外还有以下几个原因：</p><ol><li class="ql-align-justify">完全基于内存，绝大部分请求是纯粹的内存操作，非常快速。</li><li class="ql-align-justify">数据结构简单，对数据操作也简单，如哈希表、跳表都有很高的性能。</li><li class="ql-align-justify">采用单线程，避免了不必要的上下文切换和竞争条件，也不存在多进程或者多线程导致的切换而消耗 CPU</li><li class="ql-align-justify">使用多路 I/O 复用模型</li></ol><h2><strong>为什么 Redis 6.0 引入多线程</strong></h2><p>2020 年 5 月份，Redis 正式推出了 6.0 版本，这个版本中有很多重要的新特性，其中多线程特性引起了广泛关注。</p><p>但是，需要提醒大家的是，<strong style="color: inherit;">Redis 6.0 中的多线程，也只是针对处理网络请求过程采用了多线程，而数据的读写命令，仍然是单线程处理的。</strong></p><p>但是，不知道会不会有人有这样的疑问：</p><blockquote><span style="color: inherit;">Redis 不是号称单线程也有很高的性能么？</span></blockquote><p><strong style="color: inherit;">不是说多路复用技术已经大大的提升了 IO 利用率了么，为啥还需要多线程？</strong></p><p>主要是因为我们对 Redis 有着更高的要求。</p><p>根据测算，Redis 将所有数据放在内存中，内存的响应时长大约为 100 纳秒，对于小数据包，Redis 服务器可以处理 80,000 到 100,000 QPS，这么高的对于 80% 的公司来说，单线程的 Redis 已经足够使用了。</p><p>但随着越来越复杂的业务场景，有些公司动不动就上亿的交易量，因此需要更大的 QPS。</p><p>为了提升 QPS，很多公司的做法是部署 Redis 集群，并且尽可能提升 Redis 机器数。</p><p>但是这种做法的资源消耗是巨大的。</p><p>而经过分析，限制 Redis 的性能的主要瓶颈出现在网络 IO 的处理上，虽然之前采用了多路复用技术。</p><p>但是我们前面也提到过，<strong style="color: inherit;">多路复用的 IO 模型本质上仍然是同步阻塞型 IO 模型</strong>。</p><p>下面是多路复用 IO 中 select 函数的处理过程：</p><img src="./__files/96f7932108941db52d1d6ba8b0f20176d3af71c394c1baba5d47585c58eaf43486d936a55faa4557a576ac411a4bc8fb.jpeg" width="300" height="200" title="" id="ql-image__1616640567556"><p class="ql-align-justify">从上图我们可以看到，<strong style="color: inherit;">在多路复用的 IO 模型中，在处理网络请求时，调用 select （其他函数同理）的过程是阻塞的，也就是说这个过程会阻塞线程，如果并发量很高，此处可能会成为瓶颈。</strong></p><p>虽然现在很多服务器都是多个 CPU 核的，但是对于 Redis 来说，因为使用了单线程，在一次数据操作的过程中，有大量的 CPU 时间片是耗费在了网络 IO 的同步处理上的，并没有充分的发挥出多核的优势。</p><p><span style="color: inherit;">如果能采用多线程，使得网络处理的请求并发进行，就可以大大的提升性能。多线程除了可以减少由于网络 I/O 等待造成的影响，还可以充分利用 CPU 的多核优势。</span></p><p>所以，Redis 6.0 采用多个 IO 线程来处理网络请求，网络请求的解析可以由其他线程完成，然后把解析后的请求交由主线程进行实际的内存读写。</p><p>提升网络请求处理的并行度，进而提升整体性能。</p><p>但是，Redis 的多 IO 线程只是用来处理网络请求的，对于读写命令，Redis 仍然使用单线程来处理。</p><p><strong style="color: inherit;">那么，在引入多线程之后，如何解决并发带来的线程安全问题呢？</strong></p><p>这就是为什么我们前面多次提到的 "Redis 6.0 的多线程只用来处理网络请求，而数据的读写还是单线程" 的原因。</p><p>Redis 6.0 只有在网络请求的接收和解析，以及请求后的数据通过网络返回给时，使用了多线程。而数据读写操作还是由单线程来完成的，所以，这样就不会出现并发问题了。</p><p><span style="color: rgb(136, 136, 136);">参考资料：</span></p><p><span style="color: rgb(136, 136, 136);">https://www.cnblogs.com/Zzbj/p/13531622.html</span></p><p><span style="color: rgb(136, 136, 136);">https://xie.infoq.cn/article/b3816e9fe3ac77684b4f29348</span></p><p><span style="color: rgb(136, 136, 136);">https://jishuin.proginn.com/p/763bfbd2a1c2</span></p><p><span style="color: rgb(136, 136, 136);">《极客时间：Redis 核心技术与实战》</span></p><p><br></p><p>如果文章对你有帮助，别忘记<strong>点赞、评论、Get！</strong></p><p class="ql-align-center"><strong style="color: rgb(187, 187, 187);">—————————————————————</strong></p><p>公众号：<strong>Hollis</strong></p><p>一个对 Coding 有着独特追求的人。现任阿里巴巴技术专家，《程序员的三门课》联合作者。</p></div> <div class="footer-2EbN-"><div class="label-wrap-2NyPK"><span class="label-39rLM">Redis</span><span class="label-39rLM">多线程</span></div> <div class="date-1HT-U">2021.03.25</div></div> <div class="dashed-2TidV"></div> <!----> <div class="author-desc-2vW2x">阿里巴巴技术专家，《程序员的三门课》联合作者。个人公众号：Hollis，欢迎关注！</div> <div class="statement-1ddPF">
            *文章为作者独立观点，不代表BOSS直聘立场。<br>
            本文系
            BOSS直聘「有了」社区签约作者原创内容，未经账号授权，禁止随意转载。
        </div></div> <div class="comment-report comment-wrap-1E41e"><div class="comment-title-1VqhX"><span>22 条评论</span></div> <div class="comment-con-15azB"><!----> <div class="wrap-3-FIC" author="Hollis"><div class="top-2ELIp"><div class="wrap-3dWII user-gv6hi"><div class="avatar-wrap-3vamN"><img src="./__files/e68e10cdb12ffa338f0511d9708b77d21e4bff6b03dd1951552caa86f2927fa8_s.png" class="avatar-3p0o2"> <!----></div> <div class="con-ArGcU"><div class="info-1qn6D"><div class="name-3cPDU">许远</div> <!----> <!----></div> <div class="desc-3hY-O">物联网相关项目经理·3年</div></div> <div class="wrap-14tYg"><div class="mask-3Og8-" style="display: none;"></div> <div class="con-1zc9Y" style="display: none;"><svg class="icon-39aJ_"><use xlink:href="#icon_guanbi"></use></svg> <img class="medal-1zdHZ"> <div class="title-2p6eg"></div> <div class="desc-1zOjm"></div> <div class="more-1YQW4">Ta 的勋章博物馆<svg class="arrow-3s_5p"><use xlink:href="#icon_youjiantou"></use></svg></div></div></div></div> <div class="agree-ir3da"><span class="icon-wrap-1-maL"><span class="num-2VLz8">29</span> <svg class="icon-PRi_U"><use xlink:href="#icon_dianzan"></use></svg></span></div></div> <div class="main-3YFqs"><div class="con-1lJ3d">总结：数据读写还是单线程</div> <div class="footer-2M8jZ"><span class="date-1sJUi">03/25 19:56</span> <div class="wrap-K0T5l"><svg class="icon--MVYn"><use xlink:href="#icon_gengduo1"></use></svg></div></div> <div class="wrap-2G5n0" author="Hollis"> <!----></div></div></div><div class="wrap-3-FIC" author="Hollis"><div class="top-2ELIp"><div class="wrap-3dWII user-gv6hi"><div class="avatar-wrap-3vamN"><img src="./__files/avatar_15.png" class="avatar-3p0o2"> <!----></div> <div class="con-ArGcU"><div class="info-1qn6D"><div class="name-3cPDU">蔡旭杰</div> <!----> <!----></div> <div class="desc-3hY-O">Java·3年</div></div> <div class="wrap-14tYg"><div class="mask-3Og8-" style="display: none;"></div> <div class="con-1zc9Y" style="display: none;"><svg class="icon-39aJ_"><use xlink:href="#icon_guanbi"></use></svg> <img class="medal-1zdHZ"> <div class="title-2p6eg"></div> <div class="desc-1zOjm"></div> <div class="more-1YQW4">Ta 的勋章博物馆<svg class="arrow-3s_5p"><use xlink:href="#icon_youjiantou"></use></svg></div></div></div></div> <div class="agree-ir3da"><span class="icon-wrap-1-maL"><!----> <svg class="icon-PRi_U"><use xlink:href="#icon_dianzan"></use></svg></span></div></div> <div class="main-3YFqs"><div class="con-1lJ3d">mark</div> <div class="footer-2M8jZ"><span class="date-1sJUi">03/25 20:05</span> <div class="wrap-K0T5l"><svg class="icon--MVYn"><use xlink:href="#icon_gengduo1"></use></svg></div></div> <div class="wrap-2G5n0" author="Hollis"> <!----></div></div></div><div class="wrap-3-FIC" author="Hollis"><div class="top-2ELIp"><div class="wrap-3dWII user-gv6hi"><div class="avatar-wrap-3vamN"><img src="./__files/ab41a8934ab8218e07c9a5e348a4e2c58c7dd922ad47494fc02c388e12c00eac_s.jpg" class="avatar-3p0o2"> <!----></div> <div class="con-ArGcU"><div class="info-1qn6D"><div class="name-3cPDU">郭晓伟</div> <!----> <!----></div> <div class="desc-3hY-O">Java·7年</div></div> <div class="wrap-14tYg"><div class="mask-3Og8-" style="display: none;"></div> <div class="con-1zc9Y" style="display: none;"><svg class="icon-39aJ_"><use xlink:href="#icon_guanbi"></use></svg> <img class="medal-1zdHZ"> <div class="title-2p6eg"></div> <div class="desc-1zOjm"></div> <div class="more-1YQW4">Ta 的勋章博物馆<svg class="arrow-3s_5p"><use xlink:href="#icon_youjiantou"></use></svg></div></div></div></div> <div class="agree-ir3da"><span class="icon-wrap-1-maL"><!----> <svg class="icon-PRi_U"><use xlink:href="#icon_dianzan"></use></svg></span></div></div> <div class="main-3YFqs"><div class="con-1lJ3d">昨天刚问到…，早点看到就好了</div> <div class="footer-2M8jZ"><span class="date-1sJUi">03/25 20:09</span> <div class="wrap-K0T5l"><svg class="icon--MVYn"><use xlink:href="#icon_gengduo1"></use></svg></div></div> <div class="wrap-2G5n0" author="Hollis"> <!----></div></div></div><div class="wrap-3-FIC" author="Hollis"><div class="top-2ELIp"><div class="wrap-3dWII user-gv6hi"><div class="avatar-wrap-3vamN"><img src="./__files/4a190a8509c3799a24cb07743a195913a33884552b3a9af6798c13bbdc2b4f20_s.png" class="avatar-3p0o2"> <!----></div> <div class="con-ArGcU"><div class="info-1qn6D"><div class="name-3cPDU">林永宏</div> <!----> <!----></div> <div class="desc-3hY-O">java工程师·6年</div></div> <div class="wrap-14tYg"><div class="mask-3Og8-" style="display: none;"></div> <div class="con-1zc9Y" style="display: none;"><svg class="icon-39aJ_"><use xlink:href="#icon_guanbi"></use></svg> <img class="medal-1zdHZ"> <div class="title-2p6eg"></div> <div class="desc-1zOjm"></div> <div class="more-1YQW4">Ta 的勋章博物馆<svg class="arrow-3s_5p"><use xlink:href="#icon_youjiantou"></use></svg></div></div></div></div> <div class="agree-ir3da"><span class="icon-wrap-1-maL"><!----> <svg class="icon-PRi_U"><use xlink:href="#icon_dianzan"></use></svg></span></div></div> <div class="main-3YFqs"><div class="con-1lJ3d">可以可以  nice</div> <div class="footer-2M8jZ"><span class="date-1sJUi">03/25 20:27</span> <div class="wrap-K0T5l"><svg class="icon--MVYn"><use xlink:href="#icon_gengduo1"></use></svg></div></div> <div class="wrap-2G5n0" author="Hollis"> <!----></div></div></div><div class="wrap-3-FIC" author="Hollis"><div class="top-2ELIp"><div class="wrap-3dWII user-gv6hi"><div class="avatar-wrap-3vamN"><img src="./__files/9752c250fcb243788319e6008354cc54f5bf755df16d5794c2cffbc8709ffff9_s.jpg" class="avatar-3p0o2"> <!----></div> <div class="con-ArGcU"><div class="info-1qn6D"><div class="name-3cPDU">罗xx</div> <!----> <!----></div> <div class="desc-3hY-O">Java·6年</div></div> <div class="wrap-14tYg"><div class="mask-3Og8-" style="display: none;"></div> <div class="con-1zc9Y" style="display: none;"><svg class="icon-39aJ_"><use xlink:href="#icon_guanbi"></use></svg> <img class="medal-1zdHZ"> <div class="title-2p6eg"></div> <div class="desc-1zOjm"></div> <div class="more-1YQW4">Ta 的勋章博物馆<svg class="arrow-3s_5p"><use xlink:href="#icon_youjiantou"></use></svg></div></div></div></div> <div class="agree-ir3da"><span class="icon-wrap-1-maL"><!----> <svg class="icon-PRi_U"><use xlink:href="#icon_dianzan"></use></svg></span></div></div> <div class="main-3YFqs"><div class="con-1lJ3d">加入关注</div> <div class="footer-2M8jZ"><span class="date-1sJUi">03/25 20:41</span> <div class="wrap-K0T5l"><svg class="icon--MVYn"><use xlink:href="#icon_gengduo1"></use></svg></div></div> <div class="wrap-2G5n0" author="Hollis"> <!----></div></div></div> <div class="bb-line" style="width: 100%;"></div> <div class="viewMore-3iw0u"><span>展开更多评论</span> <svg aria-hidden="true" class="arrowBlow-127s3"><use xlink:href="#icon_arrows_below"></use></svg></div></div></div> <div class="root-3wuHC"><div class="mask-3iJDg"></div> <div class="content-188Wk drawerCon-k-XpZ bottom-yzkvN"><div><div class="title-2H5Vd"><span>22 条评论</span> <svg class="close-2gXiO"><use xlink:href="#icon_close"></use></svg></div> <div class="commentConDrawer-3qnnq"><div class="wrap-3-FIC" author="Hollis"><div class="top-2ELIp"><div class="wrap-3dWII user-gv6hi"><div class="avatar-wrap-3vamN"><img src="./__files/e68e10cdb12ffa338f0511d9708b77d21e4bff6b03dd1951552caa86f2927fa8_s.png" class="avatar-3p0o2"> <!----></div> <div class="con-ArGcU"><div class="info-1qn6D"><div class="name-3cPDU">许远</div> <!----> <!----></div> <div class="desc-3hY-O">物联网相关项目经理·3年</div></div> <div class="wrap-14tYg"><div class="mask-3Og8-" style="display: none;"></div> <div class="con-1zc9Y" style="display: none;"><svg class="icon-39aJ_"><use xlink:href="#icon_guanbi"></use></svg> <img class="medal-1zdHZ"> <div class="title-2p6eg"></div> <div class="desc-1zOjm"></div> <div class="more-1YQW4">Ta 的勋章博物馆<svg class="arrow-3s_5p"><use xlink:href="#icon_youjiantou"></use></svg></div></div></div></div> <div class="agree-ir3da"><span class="icon-wrap-1-maL"><span class="num-2VLz8">29</span> <svg class="icon-PRi_U"><use xlink:href="#icon_dianzan"></use></svg></span></div></div> <div class="main-3YFqs"><div class="con-1lJ3d">总结：数据读写还是单线程</div> <div class="footer-2M8jZ"><span class="date-1sJUi">03/25 19:56</span> <div class="wrap-K0T5l"><svg class="icon--MVYn"><use xlink:href="#icon_gengduo1"></use></svg></div></div> <div class="wrap-2G5n0" author="Hollis"> <!----></div></div></div><div class="wrap-3-FIC" author="Hollis"><div class="top-2ELIp"><div class="wrap-3dWII user-gv6hi"><div class="avatar-wrap-3vamN"><img src="./__files/avatar_15.png" class="avatar-3p0o2"> <!----></div> <div class="con-ArGcU"><div class="info-1qn6D"><div class="name-3cPDU">蔡旭杰</div> <!----> <!----></div> <div class="desc-3hY-O">Java·3年</div></div> <div class="wrap-14tYg"><div class="mask-3Og8-" style="display: none;"></div> <div class="con-1zc9Y" style="display: none;"><svg class="icon-39aJ_"><use xlink:href="#icon_guanbi"></use></svg> <img class="medal-1zdHZ"> <div class="title-2p6eg"></div> <div class="desc-1zOjm"></div> <div class="more-1YQW4">Ta 的勋章博物馆<svg class="arrow-3s_5p"><use xlink:href="#icon_youjiantou"></use></svg></div></div></div></div> <div class="agree-ir3da"><span class="icon-wrap-1-maL"><!----> <svg class="icon-PRi_U"><use xlink:href="#icon_dianzan"></use></svg></span></div></div> <div class="main-3YFqs"><div class="con-1lJ3d">mark</div> <div class="footer-2M8jZ"><span class="date-1sJUi">03/25 20:05</span> <div class="wrap-K0T5l"><svg class="icon--MVYn"><use xlink:href="#icon_gengduo1"></use></svg></div></div> <div class="wrap-2G5n0" author="Hollis"> <!----></div></div></div><div class="wrap-3-FIC" author="Hollis"><div class="top-2ELIp"><div class="wrap-3dWII user-gv6hi"><div class="avatar-wrap-3vamN"><img src="./__files/ab41a8934ab8218e07c9a5e348a4e2c58c7dd922ad47494fc02c388e12c00eac_s.jpg" class="avatar-3p0o2"> <!----></div> <div class="con-ArGcU"><div class="info-1qn6D"><div class="name-3cPDU">郭晓伟</div> <!----> <!----></div> <div class="desc-3hY-O">Java·7年</div></div> <div class="wrap-14tYg"><div class="mask-3Og8-" style="display: none;"></div> <div class="con-1zc9Y" style="display: none;"><svg class="icon-39aJ_"><use xlink:href="#icon_guanbi"></use></svg> <img class="medal-1zdHZ"> <div class="title-2p6eg"></div> <div class="desc-1zOjm"></div> <div class="more-1YQW4">Ta 的勋章博物馆<svg class="arrow-3s_5p"><use xlink:href="#icon_youjiantou"></use></svg></div></div></div></div> <div class="agree-ir3da"><span class="icon-wrap-1-maL"><!----> <svg class="icon-PRi_U"><use xlink:href="#icon_dianzan"></use></svg></span></div></div> <div class="main-3YFqs"><div class="con-1lJ3d">昨天刚问到…，早点看到就好了</div> <div class="footer-2M8jZ"><span class="date-1sJUi">03/25 20:09</span> <div class="wrap-K0T5l"><svg class="icon--MVYn"><use xlink:href="#icon_gengduo1"></use></svg></div></div> <div class="wrap-2G5n0" author="Hollis"> <!----></div></div></div><div class="wrap-3-FIC" author="Hollis"><div class="top-2ELIp"><div class="wrap-3dWII user-gv6hi"><div class="avatar-wrap-3vamN"><img src="./__files/4a190a8509c3799a24cb07743a195913a33884552b3a9af6798c13bbdc2b4f20_s.png" class="avatar-3p0o2"> <!----></div> <div class="con-ArGcU"><div class="info-1qn6D"><div class="name-3cPDU">林永宏</div> <!----> <!----></div> <div class="desc-3hY-O">java工程师·6年</div></div> <div class="wrap-14tYg"><div class="mask-3Og8-" style="display: none;"></div> <div class="con-1zc9Y" style="display: none;"><svg class="icon-39aJ_"><use xlink:href="#icon_guanbi"></use></svg> <img class="medal-1zdHZ"> <div class="title-2p6eg"></div> <div class="desc-1zOjm"></div> <div class="more-1YQW4">Ta 的勋章博物馆<svg class="arrow-3s_5p"><use xlink:href="#icon_youjiantou"></use></svg></div></div></div></div> <div class="agree-ir3da"><span class="icon-wrap-1-maL"><!----> <svg class="icon-PRi_U"><use xlink:href="#icon_dianzan"></use></svg></span></div></div> <div class="main-3YFqs"><div class="con-1lJ3d">可以可以  nice</div> <div class="footer-2M8jZ"><span class="date-1sJUi">03/25 20:27</span> <div class="wrap-K0T5l"><svg class="icon--MVYn"><use xlink:href="#icon_gengduo1"></use></svg></div></div> <div class="wrap-2G5n0" author="Hollis"> <!----></div></div></div><div class="wrap-3-FIC" author="Hollis"><div class="top-2ELIp"><div class="wrap-3dWII user-gv6hi"><div class="avatar-wrap-3vamN"><img src="./__files/9752c250fcb243788319e6008354cc54f5bf755df16d5794c2cffbc8709ffff9_s.jpg" class="avatar-3p0o2"> <!----></div> <div class="con-ArGcU"><div class="info-1qn6D"><div class="name-3cPDU">罗xx</div> <!----> <!----></div> <div class="desc-3hY-O">Java·6年</div></div> <div class="wrap-14tYg"><div class="mask-3Og8-" style="display: none;"></div> <div class="con-1zc9Y" style="display: none;"><svg class="icon-39aJ_"><use xlink:href="#icon_guanbi"></use></svg> <img class="medal-1zdHZ"> <div class="title-2p6eg"></div> <div class="desc-1zOjm"></div> <div class="more-1YQW4">Ta 的勋章博物馆<svg class="arrow-3s_5p"><use xlink:href="#icon_youjiantou"></use></svg></div></div></div></div> <div class="agree-ir3da"><span class="icon-wrap-1-maL"><!----> <svg class="icon-PRi_U"><use xlink:href="#icon_dianzan"></use></svg></span></div></div> <div class="main-3YFqs"><div class="con-1lJ3d">加入关注</div> <div class="footer-2M8jZ"><span class="date-1sJUi">03/25 20:41</span> <div class="wrap-K0T5l"><svg class="icon--MVYn"><use xlink:href="#icon_gengduo1"></use></svg></div></div> <div class="wrap-2G5n0" author="Hollis"> <!----></div></div></div> <div class="bb-line" style="width: 100%;"></div> <div class="viewMore-3iw0u"><span>展开更多评论</span> <svg aria-hidden="true" class="arrowBlow-127s3"><use xlink:href="#icon_arrows_below"></use></svg></div></div> <div class="drawerInput-YQ4P6"><div class="drawerInp-1JG2a"><span>我来说几句</span></div></div></div></div></div> <div class="related-3T5_G"><div class="related-title-IXagl">相关文章</div> <div class="related-report"><div class="wrap-2M2u-"><div class="title-3rTch">面试被问离职原因，千万别乱说</div> <div class="top-2R9nM"><div class="left--pzDJ"><div class="name-2LvxP">ZoeYZ</div> <div class="desc-1hJNe">找工作时，第一印象很重要，所以回答问题不能不过脑子。顶级猎头公司海德思哲的CEO有一句名言。面试本质上只有三个问题：这活你能干吗？Canyoudothejob?这活你爱干吗？Willyoulovethejob?我们能和你共事吗？Canwetolerateworkingwithyou?而面试官问“为什么从上家公司离职”或者“为什么想要离职”，目的其实也差不多：能干吗：试探下这个人在上家公司的表现爱干</div></div> <img src="./__files/3e4916efbe9fc375ea4601b71d222ded.jpeg" class="cover-3Wz0v"></div> <div class="bottom-DC5Z7"><div class="addition-SRM6H">519370 阅读 · 414 评论 · 3767 收藏</div></div></div><div class="wrap-2M2u-"><div class="title-3rTch">面试的 20 条禁忌</div> <div class="top-2R9nM"><div class="left--pzDJ"><div class="name-2LvxP">刘大大</div> <div class="desc-1hJNe">在对方没确定要你之前，不要谈薪资。有些小伙伴太在意薪资了，八字还没一撇呢，就想问待遇的问题，如果想问待遇问题，那可以在接到电话的那一刻询问一下，不合适，不去面就好。</div></div> <img src="./__files/b90806d50e874d7e61e5add6bc08ffddceb4162adcce9c8ed358cb008b64ac2a0318780077d8466d9ca0679d2f214d4e.png" class="cover-3Wz0v"></div> <div class="bottom-DC5Z7"><div class="addition-SRM6H">182908 阅读 · 264 评论 · 2377 收藏</div></div></div><div class="wrap-2M2u-"><div class="title-3rTch">面试官一提问，你就大脑一片空白？那是因为......</div> <div class="top-2R9nM"><div class="left--pzDJ"><div class="name-2LvxP">菜心</div> <div class="desc-1hJNe">有很多朋友说面试的时候，面试官一问问题，总是大脑空白，紧张的什么都答不出来，为什么？其实就是因为我们平时思考的不够深入，只停留在表面。
今天来几个小例子，希望能够给大家一点思考上的启发。</div></div> <img src="./__files/96bf0a2764488489a7571aa335222cffd3af71c394c1baba5d47585c58eaf434138eb891b3eb4887a004ded6f939a7d5.png" class="cover-3Wz0v"></div> <div class="bottom-DC5Z7"><div class="addition-SRM6H">79209 阅读 · 41 评论 · 1158 收藏</div></div></div></div></div> <div class="wrap-3ctGf"><div class="input-2jqDL">我来说几句...</div> <div class="icon-wrap-1iww-"><div class="icon-zan-3b4St"><svg class="icon-2NM-X"><use xlink:href="#icon_dianzan"></use></svg> <div class="tip-3-svW">242</div></div> <div class="icon-comment-2zbhu"><svg class="icon-2NM-X"><use xlink:href="#icon_icon_comment"></use></svg> <div class="tip-3-svW">22</div></div> <div class="icon-collect-28rkH"><svg class="icon-2NM-X"><use xlink:href="#icon_get1x"></use></svg> <div class="text-3xJwE">542</div> <!----></div></div></div> <div class="wrap-1aK-L" style="display: none;"><div class="mask-3fUIY"></div> <div class="con-2IeWi"><textarea placeholder="评论给 Hollis" class="input-23pDR"></textarea> <div class="bottom-1R9Eo"><div class="avatar-wrap-FWBEL"><img src="https://m.zhipin.com/mpa/html/get/column?contentId=beb9d74f2f1fd9afqxB83t4~&amp;identity=0&amp;userId=70673955" class="avatar-3MnBD"> <img src="" class="rect-2khNQ"></div> <button disabled="disabled" class="button-3B75G">发送</button></div></div></div> <div class="wrap-2Cb9I"><div class="top-30TCD" style="display: none;"></div> <div class="inner-1dSGs" style="display: none;"><div class="name-3Jm3w"><div class="fake-U1Nsd"><img src="https://m.zhipin.com/mpa/html/get/column?contentId=beb9d74f2f1fd9afqxB83t4~&amp;identity=0&amp;userId=70673955" class="fake-avatar-PE65a"> <div class="middle-1RxCx"><div class="fake-name-bjAG3">(匿名)</div> <svg class="loading-1kw8b" style="transform: rotate(0deg); transition: initial;"><use xlink:href="#icon_shuaxin"></use></svg></div> <svg class="icon-1ReXE"><use xlink:href="#icon_selected_off"></use></svg></div> <div class="real-3yWco"><img src="https://m.zhipin.com/mpa/html/get/column?contentId=beb9d74f2f1fd9afqxB83t4~&amp;identity=0&amp;userId=70673955" class="real-avatar-1jxvM"> <div class="real-name-sFP1A"></div> <svg class="real-status-3Sadu"><use xlink:href="#icon_zhichi"></use></svg></div></div> <div class="cancel-2JG6w"><button type="button" class="root-1Ys9t primary-ZTP6D btn-2FO2Q">确定</button></div></div></div> <!----> <div class="wrap-jj6IS"><div class="mask-387Fm" style="display: none;"></div> <div class="con-2aawq" style="display: none;"><div class="bb-line header-3Yihe"><div class="title-2CaLd">0 条回复</div> <svg class="icon-3Xh5M"><use xlink:href="#icon_guanbi"></use></svg></div> <div class="main-1iZxg"><div class="bb-line wrap-2g8ZC comment-top-9HEAz"><div class="top-3_RFm"><div class="wrap-3dWII user-3CEOF"><div class="avatar-wrap-3vamN"><img class="avatar-3p0o2"> <!----></div> <div class="con-ArGcU"><div class="info-1qn6D"><div class="name-3cPDU"></div> <!----> <!----></div> <div class="desc-3hY-O"></div></div> <div class="wrap-14tYg"><div class="mask-3Og8-" style="display: none;"></div> <div class="con-1zc9Y" style="display: none;"><svg class="icon-39aJ_"><use xlink:href="#icon_guanbi"></use></svg> <img class="medal-1zdHZ"> <div class="title-2p6eg"></div> <div class="desc-1zOjm"></div> <div class="more-1YQW4">Ta 的勋章博物馆<svg class="arrow-3s_5p"><use xlink:href="#icon_youjiantou"></use></svg></div></div></div></div> <div class="wrap-K0T5l"><svg class="icon--MVYn"><use xlink:href="#icon_gengduo1"></use></svg></div></div> <div class="main-16cIE"><div class="con-3q7Al"></div> <div class="footer-5K_Cy"><span class="date-rSBB6"></span> <span class="icon-wrap-3sJwl"><!----> <svg class="icon-3yLYI"><use xlink:href="#icon_dianzan"></use></svg></span></div></div></div> <div class="list-1BOc2"></div></div> <div class="input-wrap-3LRwt"><div class="input-1n_CD">我来说几句</div> <div class="avatar-wrap-1JIQE"><img src="https://m.zhipin.com/mpa/html/get/column?contentId=beb9d74f2f1fd9afqxB83t4~&amp;identity=0&amp;userId=70673955" class="avatar-2neCu"> <img src="" class="rect-1Lk6q"></div></div></div></div> <div class="wrap-3Ltgk"><div class="mask-11EFP" style="display: none;"></div> <div class="con-P8QGM" style="display: none;"><!----> <div class="main-1anHw"></div></div></div></div></div>

    
        
            <script src="./__files/polyfill.min.js.下载" charset="utf-8" crossorigin=""></script>
        
    
        
            <script src="./__files/vue.min.js.下载" charset="utf-8" crossorigin=""></script>
        
    
        
            <script src="./__files/vuex.min.js.下载" charset="utf-8" crossorigin=""></script>
        
    
        
            <script src="./__files/vue-router.min.js.下载" charset="utf-8" crossorigin=""></script>
        
    
        
            <script src="./__files/ka.js.下载" charset="utf-8" crossorigin=""></script>
        
    
        
            
        
    

<script src="./__files/get.08376d03.js.下载" charset="utf-8" crossorigin=""></script><!----><div class="root-2sxmZ"><div class="content-GLVkT"><div class="inner-1awLY"></div></div></div>

</body></html>